#ifndef CPUMONITOR_H
#define CPUMONITOR_H

#include <QObject>
#include <QTimer>
#include <QFile>
#include <QTextStream>
#include <QDebug>
#include "datacollectionthread.h"


class CPUMonitor : public QObject
{
    Q_OBJECT

public:
    explicit CPUMonitor(QObject *parent = nullptr);
    ~CPUMonitor();
    // 获取当前最新的cpu数据
    CPUData getCurrentData() const { return dataThread->getCurrentData(); }

    // 启动监控
    void startMonitoring();

    // 停止监控
    void stopMonitoring();

signals:
    // 信号 数据更新信号
    void dataUpdated(CPUData data);

private slots:
    // 数据更新槽函数，读取当前cpu统计数据，计算使用率，发送数据更新信号
    // 处理来自后台线程的数据更新
    void onDataCollected(CPUData data);

private:
    // 后台数据采集线程
    DataCollectionThread *dataThread;

    // 用来记录数据，当前最新数据
    CPUData currentData;
};

#endif // CPUMONITOR_H
